﻿#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
using namespace std;




//2.
class Solution
{
public:
	/*由于题⽬要找的是最短的回⽂⼦串，并且只有三个字⺟a/b/c，因此最短的回⽂⼦串的⻓度要么是
	2，要么是3。
		因此，我们仅需枚举所有的⼆元组以及三元组就好了。
	*/
	int s1()
	{

	}
	int s2()
	{
		int n, a, b, c, d;
		cin >> n;
		vector<int> v(n);

		for (int i = 0; i < n; ++i)
		{
			cin >> v[i];
		}


		auto max = [](int a, int b)->int
			{
				return a > b ? a : b;
			};

		if (n == 1)
		{
			return v[0];
		}
		else if (n == 2)
		{
			return max(v[0], v[1]);
		}
		else if (n == 3)
		{
			return max(v[0] + v[2], v[1]);
		}

		a = v[0];
		b = v[1];
		c = v[2];


		for (int i = 3; i < n; ++i)
		{
			//状态转移
			d = max(a, b) + v[i];
			a = b;
			b = c;
			c = d;
		}
		return max(c,d);
	}
};
int main()
{
	cout << Solution().s1();
}
// 64 位输出请用 printf("%lld")